package com.carb.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.carb.dto.EmployeeServiceDTO;
import com.carb.entity.Employee;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 员工管理 Mapper 接口
 * </p>
 *
 * @author XuChaoyang
 * @since 2025-01-18
 */
public interface EmployeeMapper extends BaseMapper<Employee> {

    /**
     * 根据员工的用户id集合查询员工id集合
     * @param employeeUserIdList 员工的用户id集合
     * @return 员工id集合
     */
    List<Long> getEmployeeIdsByUserIds(List<Long> employeeUserIdList);

    /**
     * 查询员工服务排名前十的员工
     * @param beginTime 开始时间
     * @param endTime 结束时间
     * @return 员工服务Top10的员工
     */
    List<EmployeeServiceDTO> getEmployeeTop10(LocalDateTime beginTime, LocalDateTime endTime);

    /**
     * 根据员工id查询员工姓名
     * @param employeeId 员工id
     * @return 员工姓名
     */
    String getNameByEmployeeId(Long employeeId);

    /**
     * 根据员工ids得到id-name的Map
     * @param employeeIds 员工id集合
     * @return Map-List
     */
    List<Map<String, Object>> getEmployeeNamesByIds(List<Long> employeeIds);
}
